IdeaBlade DevForce 2010 Help Reference
InvokeServerMethod(ServerMethodDelegate,Object[]) Method
See Also  Example Send Feedback
IdeaBlade.EntityModel Assembly > IdeaBlade.EntityModel Namespace > EntityManager Class > InvokeServerMethod Method : InvokeServerMethod(ServerMethodDelegate,Object[]) Method



serverMethod
Method to be invoked
args
Arguments to be passed to method
Invokes the specified static (Shared in Visual Basic) method for execution on the server.

Syntax

Visual Basic (Declaration) 
Public Overloads Function InvokeServerMethod( _
   ByVal serverMethod As ServerMethodDelegate, _
   ByVal ParamArray args() As Object _
) As Object
Visual Basic (Usage)Copy Code
Dim instance As EntityManager
Dim serverMethod As ServerMethodDelegate
Dim args() As Object
Dim value As Object
 
value = instance.InvokeServerMethod(serverMethod, args)
C# 
public object InvokeServerMethod( 
   ServerMethodDelegate serverMethod,
   params object[] args
)
C++/CLI 
public:
Object^ InvokeServerMethod( 
   ServerMethodDelegate^ serverMethod,
   ... array<Object^>^ args
) 

Parameters

serverMethod
Method to be invoked
args
Arguments to be passed to method

Exceptions

ExceptionDescription
System.InvalidOperationExceptionInvalid ServerMethodDelegate provided
System.Security.SecurityExceptionThrown if the method is not marked with the
IdeaBlade.EntityModel.PersistenceSecurityExceptionThrown if the server method is decorated with an AuthorizationAttribute and the user is not authorized to execute the method.

Example

C#Copy Code
// Sample showing invocation of server method
EntityManager mgr = new DomainModelEntityManager();
int orderId = 10250;
bool mailSent = (bool) mgr.InvokeServerMethod(Order.EmailOrderInfo, orderId);

// sample method defined in Order class
public class Order {
//...
  // ServerMethodDelegate method, called from client
  [AllowRpc]
  public static Object EmailOrderInfo(IPrincipal pPrincipal, EntityManager pPm, params Object[] pArgs) {
    int orderId = Convert.ToInt32(pArgs[0]);

    // build and send an email message 
    string from = "sales@mycompany.com";
    string to = "customer@yourcompany.com";
    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(from, to);
    msg.Subject = "Order Information";
    msg.Body = string.Format("Order id = {0} has been shipped", orderId);

    System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("localhost");
    try {
      mailClient.Send(msg);
    } catch (Exception e) {
      TraceFns.WriteLine(e.Message);
      return false;
    }
    return true;
 }
}
Visual BasicCopy Code
' Sample showing invocation of server method
Dim mgr As EntityManager As New DomainModelEntityManager()
Dim orderId As Integer = 10250
Dim mailSent As Boolean = CBool(mgr.InvokeServerMethod(Order.EmailOrderInfo, orderId))

' sample method defined in Order class
Public Class Order 
'...
  Public Shared<AllowRpc()>  _
  Function EmailOrderInfo(pPrincipal As IPrincipal, pManager As EntityManager, ParamArray pArgs() As [Object]) As [Object]
    Dim orderId As Integer = Convert.ToInt32(pArgs(0))
   
    ' build and send an email message 
    Dim from As String = "sales@mycompany.com"
    Dim [to] As String = "customer@yourcompany.com"
    Dim msg As New System.Net.Mail.MailMessage(from, [to])
   
    msg.Subject = "Order Information"
    msg.Body = String.Format("Order id = {0} has been shipped", orderId)
   
    Dim client As New System.Net.Mail.SmtpClient("localhost")
    Try
      client.Send(msg)
    Catch e As Exception
      TraceFns.WriteLine(e.Message)
      Return False
   End Try
   Return True
 End Function 
End Class

Remarks

The method called must be marked with the AllowRpcAttribute and correspond to the ServerMethodDelegate signature.

InvokeServerMethod enables a client-side caller to invoke an arbitrary static method on the server. The method can return any kind of serializable object.

Requirements

Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family

See Also

© 2013 All Rights Reserved.